package com.zzyl.mapper;

import com.github.pagehelper.Page;
import com.zzyl.dto.RoleDto;
import com.zzyl.entity.Role;
import com.zzyl.entity.RoleResource;
import com.zzyl.vo.RoleVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;


@Mapper
public interface RoleMapper {

    /**
     * 分页查询
     */
    Page<RoleVo> pageQuery(RoleDto roleDto);

    /**
     * 新增角色
     */
    void insertRole(Role role);

    /**
     * 查询角色选中的资源数据
     */
    List<String> queryResourceByRoleId(@Param("aLong") Long aLong);

    /**
     * 通过id查询角色信息
     */
    Role queryById(Long id);
    /**
     * 通过角色id查询用户关联的角色数量
     */
    Integer queryUserCountByRoleId(@Param("roleId") Long roleId);
    /**
     * 修改角色信息
     */
    void modifyRole(Role role);
    /**
     * 删除角色和资源关联数据
     */
    void deleteByRoleId(@Param("id") Long id);
    /**
     * 插入角色和资源关联数据
     */
    void insertBatch(@Param("list") List<RoleResource> list);


    /**
     * 删除角色
     */
    void deleteRole(@Param("roleIds") Long roleIds);

    /**
     * 角色下拉框
     */
    List<Role> initRoles();
}
